1. Technical Field
The present invention relates to rendering user interface elements in a content browser and more particularly to rendering buttons in a content browser.
2. Description of the Related Art
Prior to the popularization of the Internet and the subsequent deployment of the World Wide Web, software publishers typically distributed computer applications via storage media such as a computer diskette or compact disc. Initially, such computer applications included underlying program logic, data storage and, optionally, a user interface. Over time, as the processing capabilities of underlying computing devices evolved, increasingly more complex user interfaces were developed for use with corresponding computer applications. In particular, the advent of the graphical user interface (GUI) resulted in an expectation among end users that a computer application include an intuitive and aesthetically pleasing graphical interface through which end users could effectively interact with the computer application.
Generally, a GUI associated with an underlying computer application can include one or more GUI widgets, typically a title bar, menu bar, one or more text fields and one or more buttons. With regard to button widgets, each button often can include visual aspects which provide the end user with the illusion that a physical button has been depressed when the user selects the button. Furthermore, aspects of the button such as overlain text can provide the end user with additional information beyond whether the button has been depressed. Finally, the background and foreground coloring of buttons can be helpful in providing end users with additional information regarding the state of the button.
The visual presentation of a button in a conventional GUI can be dynamically altered by providing the GUI with visual display parameters such as color, border style and text. Once the parameters have been provided to the GUI, the button can be “redrawn” as is well-known in the art in order to produce the new button having new visual display characteristics. Importantly, the ability to change the visual presentation of a button dynamically can be particularly helpful in enabling the button for conformance with National Language Support (NLS). In accordance with NLS, the language of text displayed in a button can change as an end user selects different native languages for use in a GUI.
Recently, given the popularization of the Internet and the World Wide Web, it is no longer reasonable to presume that computer applications are distributed exclusively via disk medium. Rather, in many cases, conventional computer programs are distributed electronically via the Internet. More importantly, however, in many cases computer applications are no longer distributed as stand-alone executable programs. Rather, many computer applications are distributed as Web applications which can include a collection of hypermedia documents such as Web pages which can be viewed in hypermedia content browsers such as Web browsers.
In the case of a Web application, the user interacts with the underlying program logic not through a traditional GUI, but through a GUI provided by widgets embedded in a hypermedia document displayed in a hypermedia content browser. Unfortunately, Web-based GUIs do not enjoy the same flexibility of the conventional GUI. Specifically, GUI widgets which can be dynamically modified during run-time are not also included as part of a Web-enabled GUI. In fact, fundamental limitations of modern markup languages prohibit software developers from accessing “basic” GUI components such as a feature rich button.
As an example, presently, to change the NLS attributes of a Web-based GUI, static images of buttons having localized text which have been pre-generated “by hand” must be employed. Unlike conventional GUI buttons whose visual display characteristics can be changed only by modifying a parameter list, in a Web-based GUI, a static image of a button must be pre-generated for each possible button state. Hence, buttons in a Web-based GUI cannot provide the same advantages as the feature rich buttons of a conventional GUI.